﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using MIAP.DataAccess.Interfaces;
using MIAP.DataAccess.SqlServer.Model;
using MIAP.Entidades;
using MIAP.Entidades.Enums;

namespace MIAP.DataAccess.Implementaciones.SQL
{    
    /// <summary>
    /// Clase de las operaciones de acceso a datos para obtener los períodos de información.
    /// </summary>
     public class PeriodoInformacionDao : IPeriodoInformacionDao
    {
         /// <summary>
         /// Obtiene todos los períodos de información existentes
         /// </summary>        
         /// <returns>Lista que contiene todos los periodos de carga almacenados en la base de datos</returns>
         public IList<PeriodoInfo> GetPeriodosInformacion()
         {
             IList<PeriodoInfo> result;

             using (var context = new MIAPDBEntities())
             {
                 var query = from periodo in context.MIAP_PERIODO_INFORMACION
                             select new PeriodoInfo
                             {
                                 IdentificadorPeriodo = periodo.ID_PERIODO_INFORMACION,
                                 NombrePeriodo = periodo.NOMBRE,
                                 TipoPeriodo = TipoPeriodo.Informacion
                             };
                 result = query.ToList();
             }

             return result; 
         }
    }
}
